package main

import (
	_ "beegoProject15/models/auth"
	_ "beegoProject15/models/finance"
	_ "beegoProject15/models/my_center"
	_ "beegoProject15/routers"
	"beegoProject15/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

/*
9.79-9.84【财务中心模块】导入excel数据（1-6）
	1. finance - finance_controller.go 增加 excel导入函数 ToImportExcel
	2. user_add.html 拷贝 salary-slip-import.html
	3. 路由
	4. salary-slip-list.html 修改导入url 52H
	5. salary-slip-import.html 30H，61H
	6. 后端获取 finance - finance_controller.go DoImportExcel
	7. 路由
	8. 创建文件存储目录 upload - salary_slip_upload
	9. go get github.com/luxurioust/excelize
	10. DoImportExcel 定义输入导入逻辑
    11. 前端修改 salary-slip-import.html 87H


9.85【财务中心模块】导入excel时精确返回未插入成功的数据----有问题需要重新观看视频
	1.

9.86【财务中心模块】财务报表分析
9.87【财务中心模块】财务报表模型创建及表迁移
9.88【财务中心模块】财务报表分页显示
	1. 页面财务中心 添加二级菜单财务报表，普通管理员勾选财务报表权限
	2. 创建财务报表模型 models - financial_statement - CaiWuData
	3. main.go 内引入
	4. 创建控制器 finance - finance_echarts_data_controller.go - Get
	5. 路由 --- 数据库修改路由url
	6. 拷贝 finance - salary-slip-list.html => echarts-data-list.html
	7. echarts-data-list.html 修改表单标题和数据 59H
	8. 定义  Get 逻辑
    9. 数据库添加数据测试访问

9.89【财务中心模块】财务报表导入功能完成
	1. 创建导入控制器 ToImportExcel
	2. 拷贝导入页面 salary-slip-import.html -> echart-data-import.html
	3. 路由
	4. 定义功能
	5. echart-data-import.html 75H
	6. 定义 DoImportExcel 拷贝工资条的导入修改
	7.
	8.


*/

func init() {
	user := beego.AppConfig.DefaultString("mysql::Username", "root")
	pwd := beego.AppConfig.DefaultString("mysql::Password", "Ideal123")
	host := beego.AppConfig.DefaultString("mysql::Host", "127.0.0.1")
	port := beego.AppConfig.DefaultInt("mysql::Port", 3306)
	dbName := beego.AppConfig.DefaultString("mysql::DbName", "beegoProject")

	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=true&loc=PRC",
		user, pwd, host, port, dbName)

	orm.RegisterDriver("mysql", orm.DRMySQL)
	orm.RegisterDataBase("default", "mysql", dsn)

	db, err := orm.GetDB("default")
	if err != nil {
		log.Fatal(err)
	} else if err := db.Ping(); err != nil {
		log.Fatal(err)
	}
}

func main() {
	orm.RunCommand()
	/*	orm.Debug = true*/
	beego.BConfig.WebConfig.Session.SessionOn = true

	// 未登录请求拦截
	beego.InsertFilter("/main/*", beego.BeforeRouter, utils.LoginFilter)

	// 日志
	logs.SetLogger(logs.AdapterMultiFile, `{"filename":"logs/beego.log","separate":["error","info","debug"]}`)

	beego.Run()
}
